#pragma once

#include "logicbase/GLEntityBase.h"
#include "GLGlobalInfo.h"

class CGLAinmalLow : public CGLEntityBase {
public:
	CGLAinmalLow();
	virtual ~CGLAinmalLow();
	static bool IsPerson(int32_t type) { return type > EntityTypeNone && type < AnimalPersonMaxType; }
	static bool IsAnimal(int32_t type) { return type > EntityTypeNone && type <= AnimalMaxType; }

	AnimalInfo& GetBaseInfo() { return m_Info.m_Base; }
	AnimalExtendInfo& GetExtendInfo() { return m_Info.m_Extend; }
	FullAnimalInfo& GetFullInfo() { return m_Info; }
	void GetLookInfo(AnimalLookInfo& info);
	bool IsPerson() const { return IsPerson(m_Info.m_Base.m_Type); }

	BaseProperty& GetProperty() { return m_Property; }
private:
	FullAnimalInfo		m_Info;
	BaseProperty		m_Property;
};

class CGLAnimalSenior : public CGLAinmalLow {
public:
	CGLAnimalSenior(void);
	virtual ~CGLAnimalSenior(void);

	FullPointInfo& GetFullPoint() { return m_Point; }
	AnimalSkill& GetSkill() { return m_Skill; }
private:
	FullPointInfo			m_Point;
	AnimalSkill				m_Skill;
};

